package com.atguigu.common.to.es;

import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * 商品上架，存入es中的数据
 */
@Data
public class SkuEsModel {

    private long skuId;

    private long spuId;

    private String skuTitle;

    private BigDecimal skuPrice;

    private String skuImg;

    private long sealCount;

    // 是否拥有库存
    private boolean hasStock;

    // 热度评分
    private long hotScore;

    private long brandId;

    private String brandName;

    private String brandImg;

    private long catalogId;

    private String catalogName;

    private List<Attrs> attrs;

    // 规格属性（可以用于检索的规格属性）
    @Data
    public static class Attrs {
        private long attrId;
        private String attrName;
        private String attrValue;
    }

    /**
     * todo kibana添加映射
     *
     * {
     *   "mappings": {
     *     "properties": {
     *       "skuId": {
     *         "type": "long"
     *       },
     *       "spuId": {
     *         "type": "keyword"
     *       },
     *       "skuTitle": {
     *         "type": "text",
     *         "analyzer": "ik_smart"
     *       },
     *       "skuPrice": {
     *         "type": "keyword"
     *       },
     *       "skuImg": {
     *         "type": "keyword",
     *         "index": false,
     *         "doc_values": false
     *       },
     *       "sealCount": {
     *         "type": "long"
     *       },
     *       "hasStock": {
     *         "type": "boolean"
     *       },
     *       "hotScore": {
     *         "type": "long"
     *       },
     *       "brandId": {
     *         "type": "long"
     *       },
     *       "catalogId": {
     *         "type": "long"
     *       },
     *       "brandName": {
     *         "type": "keyword",
     *         "index": false,
     *         "doc_values": false
     *       },
     *       "brandImg": {
     *         "type": "keyword",
     *         "index": false,
     *         "doc_values": false
     *       },
     *       "catalogName": {
     *         "type": "keyword",
     *         "index": false,
     *         "doc_values": false
     *       },
     *       "attrs": {
     *         "type": "nested",
     *         "properties": {
     *           "attrId": {
     *             "type": "long"
     *           },
     *           "attrName": {
     *             "type": "keyword",
     *             "index": false,
     *             "doc_values": false
     *           },
     *           "attrValue": {
     *             "type": "keyword"
     *           }
     *         }
     *       }
     *     }
     *   }
     * }
     */
}
